package mhwi.characters;

import com.megacrit.cardcrawl.cards.AbstractCard;
import com.megacrit.cardcrawl.cards.red.Strike_Red;
import com.megacrit.cardcrawl.characters.AbstractPlayer;
import com.megacrit.cardcrawl.core.CardCrawlGame;
import com.megacrit.cardcrawl.localization.CharacterStrings;
import com.megacrit.cardcrawl.screens.CharSelectInfo;
import mhwi.cards.hunter.MaoFanCard;
import mhwi.cards.taidao.*;
import mhwi.helper.ModHelper;
import mhwi.relics.TaiDaoRelic;

import java.util.ArrayList;

import static mhwi.constants.ResourcesConstant.*;
import static mhwi.enums.ModEnums.PlayerColorEnum.CARD_COLOR_HUNTER_TAIDAO;
import static mhwi.enums.ModEnums.PlayerColorEnum.PLAYER_CLASS_TAIDAO;

public class TaiDaoHunter extends TemplateHunter {
    private static final Class<? extends TemplateHunter> CLASS = TaiDaoHunter.class;
    private static final String CLASS_NAME = CLASS.getSimpleName();

    private static final String IMG_HUNTER = ModHelper.makeFileName(PATH_IMG_CHAR, CLASS_NAME, EXTENSION_PNG);
    // 人物的本地化文本
    private static final CharacterStrings characterStrings = CardCrawlGame.languagePack.getCharacterString(ModHelper.makeId(CLASS_NAME));

    public TaiDaoHunter(String name) {
        super(name, PLAYER_CLASS_TAIDAO, CLASS, CARD_COLOR_HUNTER_TAIDAO);
    }

    // 初始卡组的ID
    public ArrayList<String> getStartingDeck() {
        ArrayList<String> retVal = super.getStartingDeck();
//        retVal.add(XiaoJuHeCard.ID);
//        retVal.add(DaJuHeCard.ID);
//        retVal.add(TeShuNaDaoCard.ID);
//        retVal.add(TaBuZhanCard.ID);
//        retVal.add(TuCiCard.ID);
//        retVal.add(HouTuiZhanCard.ID);
//        retVal.add(ShangTiaoZhanCard.ID);
//        retVal.add(QiRenDouGeCard.ID);
//        retVal.add(QiRenTuCiCard.ID);
//        retVal.add(TiCaoKaiRenCard.ID);
//        retVal.add(JianQieCard.ID);

        retVal.add(TaBuZhanCard.ID);
        retVal.add(TuCiCard.ID);
        retVal.add(TuCiCard.ID);
        retVal.add(TuCiCard.ID);
        return retVal;
    }

    // 初始遗物的ID
    public ArrayList<String> getStartingRelics() {
        ArrayList<String> retVal = super.getStartingRelics();
        retVal.add(TaiDaoRelic.ID);
        return retVal;
    }

    @Override
    public CharSelectInfo getLoadout() {
        return new CharSelectInfo(
                characterStrings.NAMES[0], // 人物名字
                characterStrings.TEXT[0], // 人物介绍
                75, // 当前血量
                75, // 最大血量
                0, // 初始充能球栏位
                75, // 初始携带金币
                5, // 每回合抽牌数量
                this,
                this.getStartingRelics(), // 初始遗物
                this.getStartingDeck(), // 初始卡组
                false
        );
    }

    // 人物名字（出现在游戏左上角）
    @Override
    public String getTitle(PlayerClass playerClass) {
        return characterStrings.NAMES[0];
    }

    // 翻牌事件出现的你的职业牌（一般设为打击）
    @Override
    public AbstractCard getStartCardForEvent() {
        return new Strike_Red();
    }

    // 游戏中左上角显示在你的名字之后的人物名称
    @Override
    public String getLocalizedCharacterName() {
        return characterStrings.NAMES[0];
    }

    @Override
    public AbstractPlayer newInstance() {
        return new TaiDaoHunter(this.name);
    }

    // 第三章面对心脏说的话
    @Override
    public String getSpireHeartText() {
        return characterStrings.TEXT[1];
    }
}